﻿package com.eitb.plantillas{
	import flash.net.*;
	import flash.text.*;
	import flash.geom.*;
	import flash.media.*;
	import flash.events.*;
	import flash.display.*;
	import com.eitb.literales.*;
	import com.eitb.programas.*;
	import com.eitb.formaters.*;
	import com.eitb.cargadores.*;
	import com.eitb.events.ScrollEvent;
	import com.eitb.colecciones.*;	

	public class PlantillaGaleriaTexto extends Sprite implements IVistaPlantilla, IVistaPlantillaGaleria, IVistaCargador, IVistaPlantillaTexto {
		
		private var cPrograma:IControladorPrograma;
		private var cPlantilla:IControladorPlantilla;
		private var cPlantillaGaleria:IControladorPlantillaGaleria;
		private var cCargador:IControladorCargador;
		private var CARGADOR_WIDTH:Number;
		
		private var textos:Array;
		
		public function PlantillaGaleriaTexto():void {
			this.textos = new Array();
			this.CARGADOR_WIDTH = this.cargador.barra.width;
			this.cargador.visible = false;
			this.scroll.visible = false;
			this.pantalla.visible = false;
			
			for (var i=0; i < this.numChildren; i++) {
				if (this.getChildAt(i) is TextField) {
					this.textos.push(this.getChildAt(i));
				}
			}
			
			this.textos = this.textos.sort(new OrdenarDisplayObject().porPosicion);			
		}
		
		public function initControladorPrograma(cPrograma:IControladorPrograma):void {
			this.cPrograma = cPrograma;
		}
		public function initControladorPlantilla(cPlantilla:IControladorPlantilla):void {
			this.cPlantilla = cPlantilla;
		}

		public function initControladorPlantillaGaleria(cPlantillaGaleria:IControladorPlantillaGaleria):void {
			this.cPlantillaGaleria = cPlantillaGaleria;
		}
		
		public function initControladorCargador(cCargador:IControladorCargador):void {
			this.cCargador = cCargador;
		}

		public function initEvents():void {
			this.scroll.addEventListener(ScrollEvent.POINT_SELECTED, this.cPlantillaGaleria.moveBotonScroll);
		}
		
		public function setVisible(mostrar:Boolean):void {
			this.visible=mostrar;
		}
		
		// CARGADOR
		public function setCargadorContador(porcentaje:String):void {
			this.cargador.porcentaje.text = porcentaje;
		}
		public function setCargadorProgress(porcentaje:Number):void {
			this.cargador.barra.width = this.CARGADOR_WIDTH * porcentaje;
		}
		public function setCargadorInfo(info:String):void {
			this.cargador.info.text = info;
		}
		public function setCargadorVisible(mostrar:Boolean):void {
			this.cargador.visible = mostrar;
		}		
		// CARGADOR					
		
		// GALERIA
		public function setPantallaLocation(point:Point):void{
			this.pantalla.x = point.x;
			this.pantalla.y = point.y;
		}
		public function setPantalla(imagen:Bitmap):void {
			this.pantalla.removeChildAt(0);
			this.pantalla.addChildAt(imagen, 0);
		}

		public function setImagenSeleccionadaText(nImagen:String):void {
			this.imagenSeleccionada.text = nImagen;
		}
		public function setImagenesTotalesText(nImagenes:String):void {
			this.imagenesTotales.text = nImagenes;
		}
		public function getOcultadorIndex():int {
			return this.getChildIndex(this.ocultador);
		}
		public function setScrollVisible(mostrar:Boolean):void{
			this.scroll.visible = mostrar;
		}
		public function setPantallaVisible(mostrar:Boolean):void {
			this.pantalla.visible = true;
		}
		// GALERIA
		// TEXTOS
		public function setTextos(textos:XMLList):void {
			/*if (null != textos) {
				for (var i =0; i < this.textos.length-2; i++) {
					if (null == textos.texto[i]) {
						break;
					}
					this.textos[i+2].text=textos.texto[i];
				}
			}*/
			if (textos.texto[0]!=null)
			this.textos[2].text=textos.texto[0];
			
		}
		public function setEpigrafe(texto:String):void {
			this.epigrafe.text = texto;
		}
		// TEXTOS
		
	}
}